// 给定一个字符串，找到它的第一个不重复的字符，并返回它的索引。如果不存在，则返回 -1。

export const firstUniqChar = function (s: string): number {
    const letterMap: number[] = new Array(26).fill(0);
    const originCode: number = 'a'.charCodeAt(0);
    // 统计哈希表
    for (let i = 0; i < s.length; i++) {
        const currCode: number = s.charCodeAt(i) - originCode;
        letterMap[currCode]++;
    }
    // 再扫描一遍
    for (let i = 0; i < s.length; i++) {
        const currCode: number = s.charCodeAt(i) - originCode;
        if (letterMap[currCode] === 1) return i;
    }
    // 找不到就返回-1
    return -1;
};


// 非常简单的一道题目，基本就是考察了哈希表的使用。